﻿
/*******************************************************************************************
// ©2009 Microsoft Corporation.  This code is provided under the Microsoft Public License.
*******************************************************************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace UCMACellularWS
{
    [ServiceContract(SessionMode = SessionMode.Required)]
    public interface IPubSub
    {

        /// <summary>
        /// Allows Cell phone infrastructure to update user status.
        /// </summary>
        /// <param name="status">Target Status of the User</param>
        /// <param name="sipAddress">SIP Address of the User</param>
        /// <returns>Returns true if status was updated successfully otherwise return false</returns>
        [OperationContract]
        bool UpdatePhoneStatus(CellPhoneStatus status, string sipAddress,string customMessage);

        

        /// <summary>
        /// Allows clients to publish GPS Location as a Custom Presence
        /// </summary>
        /// <param name="sipAddress">SIP address of the user</param>
        /// <param name="gpsStatement">Returns true if status was updated successfully otherwise return false</param>
        /// <returns></returns>
        [OperationContract]
        bool PublishGPSLocation(string sipAddress, string gpsStatement);
    }

    /// <summary>
    /// Enumeration for all the possible Cell phone statuses
    /// </summary>
    [DataContract]
    public enum CellPhoneStatus
    {
        [EnumMember()]
        OffHook=6500,
        [EnumMember()]
        OnHook=3500
    }

   
}
